﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HigLabo.Component
{
    public class HigLaboTimeZone
    {
        public String Name { get; set; }
        public int TimeSpan { get; set; }
        public HigLaboTimeZone(String name, int timeSpan)
        {
            Name = name;
            TimeSpan = timeSpan;
        }
        public static List<HigLaboTimeZone> Create()
        {
            List<HigLaboTimeZone> l = new List<HigLaboTimeZone>();

            l.Add(new HigLaboTimeZone("(UTC-12:00) International Date Line West", -12)); //国際日付変更線 西側
            l.Add(new HigLaboTimeZone("(UTC-11:00) Midway Island, Samoa", -11)); //協定世界時-11, サモア
            l.Add(new HigLaboTimeZone("(UTC-10:00) Hawaii", -10));   //ハワイ
            l.Add(new HigLaboTimeZone("(UTC-09:00) Alaska", -9));    //アラスカ
            l.Add(new HigLaboTimeZone("(UTC-08:00) Pacific Time (US & Canada), Baja California", -8));  //太平洋標準時 (米国およびカナダ), バハカリフォルニア
            l.Add(new HigLaboTimeZone("(UTC-07:00) Arizona, Chihuahua, La Paz, Mazatlan, Mountain Time (US & Canada)", -7));   //アリゾナ, チワワ,ラパス,マサトラン, 山地標準時 (米国およびカナダ)
            l.Add(new HigLaboTimeZone("(UTC-06:00) Saskatchewan, Guadalajara, Mexico City, Monterrey, Central America, Central Time (US & Canada)", -6));   //サスカチュワン, グアダラハラ,メキシコシティ,モンテレー, 中央アメリカ, 中部標準時 (米国およびカナダ)
            l.Add(new HigLaboTimeZone("(UTC-05:00) Indiana (East), Eastern Time (US & Canada), Bogota, Lima, Quito", -5));    //インディアナ東部, 東部標準時 (米国およびカナダ), ボゴタ,リマ,キト
            l.Add(new HigLaboTimeZone("(UTC-04:00) Caracas, Santiago, Manaus, Georgetown, La Paz, San Juan, Atlantic Time (Canada), Asuncion", -4));   //カラカス, サンティアゴ, マナウス, ジョージタウン,ラパス,サンフアン, 大西洋標準時 (カナダ), アスンシオン
            l.Add(new HigLaboTimeZone("(UTC-03:00) Newfoundland, Montevideo, Greenland, Cayenne, Buenos Aires, Brasilia", -3));  //ニューファンドランド, モンテビデオ, グリーンランド, カイエンヌ, ブエノスアイレス, ブラジリア
            l.Add(new HigLaboTimeZone("(UTC-02:00) Mid-Atlantic", -2));  //中央大西洋
            l.Add(new HigLaboTimeZone("(UTC-01:00) Cape Verde Is., Azores", -1));    //カーボベルデ諸島, アゾレス諸島
            l.Add(new HigLaboTimeZone("(UTC) Casablanca, Coordinated Universal Time, Dublin, Edinburgh, Lisbon, London, Monrovia, Reykjavik", 0)); //カサブランカ, 協定世界時, ダブリン,エジンバラ,リスボン,ロンドン, モンロビア,レイキャビク
            l.Add(new HigLaboTimeZone("(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna, Belgrade, Bratislava, Budapest, Ljubljana, Prague, Brussels, Copenhagen, Madrid, Paris, Sarajevo, Skopje, Warsaw, Zagreb, West Central Africa", 1));   //アムステルダム,ベルリン､ベルン,ローマ､ストックホルム､ウィーン, ベオグラード,ブラチスラバ,ブダペスト,リュブリャナ,プラハ, ブリュッセル,コペンハーゲン,マドリード,パリ, サラエボ,スコピエ,ワルシャワ,ザグレブ, 西中央アフリカ
            l.Add(new HigLaboTimeZone("(UTC+02:00) Amman, Athens, Bucharest, Istanbul, Beirut, Cairo, Harare, Pretoria, Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius, Jerusalem, Minsk, Windhoek", 2));  //アンマン, アテネ,ブカレスト,イスタンブール, ベイルート, カイロ, ハラーレ,プレトリア, ヘルシンキ,キエフ,リガ,ソフィア,タリン,ビリニュス, エルサレム, ミンスク, ウィントフック
            l.Add(new HigLaboTimeZone("(UTC+03:00) Baghdad, Kuwait, Riyadh, Moscow, St. Petersburg, Volgograd, Nairobi, Tehran", 3));    //バグダッド, クウェート,リヤド, モスクワ,サンクトペテルブルク,ボルゴグラード, ナイロビ, テヘラン
            l.Add(new HigLaboTimeZone("(UTC+04:00) Abu Dhabi, Muscat, Baku, Port Louis, Tbilisi, Yerevan, Kabul", 4));  //アブダビ,マスカット, バク, ポート ルイス, トビリシ, エレバン, カブール
            l.Add(new HigLaboTimeZone("(UTC+05:00) Ekaterinburg, Islamabad, Karachi, Tashkent, Chennai, Kolkata, Mumbai, New Delhi, Sri Jayawardenepura", 5));   //エカテリンバーグ, イスラマバード,カラチ, タシケント, チェンナイ,コルカタ,ムンバイ,ニューデリー, スリジャヤワルダナプラコッテ
            l.Add(new HigLaboTimeZone("(UTC+06:00) Kathmandu, Astana, Dhaka, Novosibirsk, Yangon (Rangoon)", 6));  //カトマンズ, アスタナ, ダッカ, ノボシビルスク, ヤンゴン (ラングーン)
            l.Add(new HigLaboTimeZone("(UTC+07:00) Bangkok, Hanoi, Jakarta, Krasnoyarsk", 7));    //バンコク,ハノイ,ジャカルタ, クラスノヤルスク
            l.Add(new HigLaboTimeZone("(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi, Irkutsk, Kuala Lumpur, Singapore, Perth, Taipei, Ulaanbaatar", 8));//北京,重慶,香港特別行政区,ウルムチ, イルクーツク, クアラルンプール,シンガポール, パース, 台北, ウランバートル
            l.Add(new HigLaboTimeZone("(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul, Yakutsk, Adelaide, Darwin", 9));  //東京, 大阪 ,札幌 , ソウル, ヤクーツク, アデレード, ダーウィン
            l.Add(new HigLaboTimeZone("(UTC+10:00) Brisbane, Canberra, Melbourne, Sydney, Guam, Port Moresby, Hobart, Vladivostok", 10));  //ブリズベン, キャンベラ,メルボルン,シドニー, グアム,ポートモレスビー, ホバート, ウラジオストク
            l.Add(new HigLaboTimeZone("(UTC+11:00) Magadan, Solomon Is., New Caledonia", 11));//マガダン,ソロモン諸島,ニューカレドニア
            l.Add(new HigLaboTimeZone("(UTC+12:00) Auckland, Wellington, Fiji, Marshall Is., Petropavlovsk-Kamchatsky", 12));  //オークランド,ウェリントン, フィジー, ペトロパブロフスク-カムチャツキー - 廃止
            l.Add(new HigLaboTimeZone("(UTC+13:00) Nuku'alofa", 13));    //ヌクアロファ

            return l;
        }
    }
}
